iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0

昨天講完流程控制,今天也要將在程式中很重要的部分
在 Java 中,迴圈(Loop)是一種控制結構,用於重複執行一組程式語句,直到某個條件不再滿足為止。迴圈可以幫助簡化程式碼,處理大量的重複性任務。Java 提供了多種不同類型的迴圈,包括 for 迴圈、while 迴圈和do-while 迴圈,每種迴圈都有其適用的情境和使用方式,且在滿足迴圈條件的情況下,反覆執行某一段程式碼,不滿足迴圈條件就會結束迴圈。

迴圈語句可包含4個部分:

  1. 初始化語句:在迴圈開始之前執行初始化工作。
  2. 迴圈條件:boolean 運算式,決定是否執行迴圈體。
  3. 迴圈體 : 迴圈的主體,符合條件就執行,如果只有一句就可以省略大括號。
  4. 迭代語句 :在一次迴圈體執行結束後,對迴圈條件求值之前執行,用於控制條件中的變數,使得迴圈在合適的時候結束。

以上4部分只是一般性的分類,並不是每個迴圈都清楚劃分

for 迴圈

知道執行次數

for(初始化語句; 迴圈條件; 迭代語句)
{
     迴圈主體;
}

https://ithelp.ithome.com.tw/upload/images/20230925/201631397Hj5dupy01.png

下面來展示一下從 1 加到 10 吧!

public class ForDemo {

	public static void main(String[] args) {
		
		int sum = 0;

		for(int i = 1 ; i <= 10; i++) {
			
			sum += i;
		}
		System.out.println("1 + 2 + ... +10 = " + sum);
		//1 + 2 + ... +10 = 55
	}

}

for 迴圈只有兩個分號是必須的,初始化語句、迴圈條件、迭代語句的部分都是可以省略的,如果省略了迴圈條件,這個迴圈條件預設為true就會變成無限迴圈。

運行以下程式,就會一直輸出-----------------------

public class DeadForDemo {

	public static void main(String[] args) {
		
		for(;;) {
			
			System.out.println("-----------------------");
		}
	}
	
}

會造成無限迴圈還有以下情況

public class ForErrorDemo {

	public static void main(String[] args) {
		
		for(int i = 0 ; i < 10 ; i++) {
			
			System.out.println(i);
			i *= 0.1;
		}
	}

}

注意:建議不要再迴圈內修改迴圈變數的值,否則將增加程式出錯的可能性,萬一真的遇到需要修改的情況,建議重新定義一個臨時變數,將迴圈變數值賦給臨時變數,再對臨時變數修改。

補充:在迴圈裡宣告的變數只是區域變數,跳出迴圈後,這個變數將不可被使用。

所以想要擴大初始化語句所定義的變數作用範圍,可以用以下的方式!

public class IfDemo2 {
	
	public static void main(String[] args) {
		
		int temp = 0;
		
		for(int i = 0 ; i < 10 ; i++) {
			
			System.out.println(i);
			temp = i;
		}
		//變數i 不可被使用
		System.out.println(temp);
	}
}

今天先到這邊,明天我們再繼續講到while迴圈吧


上一篇
Day 9 流程控制
下一篇
Day 11 迴圈II
系列文
玩轉Java:從基礎打造你的程式超能力30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言